// 对象是指数据和在这些数据上进行的操作的集合
// js中的对象就是单纯的键值对
// js中实现对象的方法是使用function，用函数的结构来实现对象

function Point(x, y) {
    this.x = x;
    this.y = y;
}

Point.prototype.toString = function () {
    return '(' + this.x + ', ' + this.y + ')';
};

var p = new Point(1, 2);
p.toString()    // "(1, 2)"

// class语法就是这种建立对象的语法糖
class Point {
    // 数据结构放到了constructor里面
    constructor(x, y) {
      this.x = x;
      this.y = y;
    }
    // 自定义的方法可以直接写入，不用绑定到原型链的写法了
    toString() {
      return '(' + this.x + ', ' + this.y + ')';
    }
}
// 用法完全一致
var p = new Point(1, 2);
p.toString()    // "(1, 2)"
typeof Point    // "function"    class的类型还是function

